1. Field of the Invention
The present invention relates to managing user interface characteristics in displaying data storage system information.
2. Description of Prior Art
Information services and data processing industries in general have rapidly expanded as a result of the need for computer systems to manage and store large amounts of data. As an example, financial service companies such as banks, mutual fund companies and the like now, more than ever before, require access to many hundreds of gigabytes or even terabytes of data and files stored in high capacity data storage systems. Other types of service companies have similar needs for data storage.
Data storage system developers have responded to the increased need for storage by integrating high capacity data storage systems, data communications devices (e.g., switches), and computer systems (e.g., host computers or servers) into so-called “storage networks” or “Storage Area Networks” (SANs.)
In general, a storage area network is a collection of data storage systems that are networked together via a switching fabric to a number of host computer systems operating as servers. The host computers access data stored in the data storage systems (of a respective storage area network) on behalf of client computers that request data from the data storage systems. For example, according to conventional applications, upon receiving a storage access request, a respective host computer in the storage area network accesses a large repository of storage through the switching fabric of the storage area network on behalf of the requesting client. Thus, via the host computer (e.g., server), a client has access to the shared storage system through the host computer. In many applications, storage area networks support hi-speed acquisitions of data so that the host servers are able to promptly retrieve and store data from the data storage system.
Conventional storage area network management applications typically include a graphical user interface (GUI) that enables a network manager to graphically manage, control, and configure various types of hardware and software resources associated with a corresponding managed storage area network. For example, one conventional storage management application generates a graphical user interface utilized by a storage administrator to graphically select, interact with, and manage local or remote devices and software processes associated with the storage area network. Based on use of the graphical user interface in combination with an input device such as a hand operated mouse and corresponding pointer displayed on a viewing screen or other display, a storage administrator is able to manage hardware and software entities such as file systems, databases, storage devices, volumes, peripherals, network data communications devices, etc., associated with the storage area network. Consequently, a storage management station and associated management software enables a storage administrator (a person responsible for managing the storage network) to manage the storage area network and its resources.
One example of this kind of graphical user interface includes a screen presentation that may include toolbars with accompanying menus and menu items as well as displays such as graphs, tables, maps or trees.
With respect to the GUI, people today use the World Wide Web for a variety of different and diverse tasks for example locating information, ordering and buying goods on-line and managing their finances. Many users expect that these applications will operate regardless of what type of computer platform is used.
Java technology helps provide a solution by allowing the creation of computer platform independent programs. Java is a registered trademark of Oracle and/or its affiliates. Other names used herein may be trademarks of their respective owners. The Java technology includes an object oriented programming language and a platform on which to run the Java applications. Java is both a compiled and an interpreted language. The source code that has been written by the application developer is compiled into an intermediate form called a Java bytecode, which is a platform independent language. At a client machine, the java bytecodes are interpreted by the Java platform and the Java interpreter parses and runs each Java bytecode instruction on the computer. (If the Java bytecode is run as a applet, it may first be sent over the network to the client machine.)
The Java platform includes the Application Programming Interface (API), which is a large collection of ready-made software components, which provide a variety of capabilities, and the Java Virtual Machine (JVM) which will be explained in the paragraph below. Together the JVM and the API sit on top of the hardware based computer platform and provide a layer of abstraction between the Java program and the underlying hardware.
The JVM is made up of software, which can run a Java program on a specific computer platform of a client machine. Before a Java program can be run on a JVM, the Java program must first be translated into a format that the JVM recognizes, which is called a Java class file format. The Java class file format contains all the information needed by a Java runtime system to define a single Java class.
The creation of Java GUIs is currently implemented with the Java Swing package. Previously, the Abstract Windows Toolkit (AWT) library was available for working with graphics. This package contains a simple set of classes such as Buttons, TextField, Label and others. A more advanced set of classes is contained in the later introduced library called Swing. Swing, like AWT, is a package that also includes buttons, text fields, and other classes for providing window controls.
In today's web server environment, many alternatives are provided for an application provided by a web server to interact with a user at a client machine. One alternative may include downloading a Java applet from a web server to a client. The Java applet typically includes library calls from the Java Platform software development toolkit (SDK). The Java applet contains computer instructions written in the Java language which are executed by a JVM resident on the client machine to interact with a user of the client machine. Executing such computer instructions on the client machine lowers the capacity requirements of a web server and the bandwidth to communicate the results of those instructions from the web server to the client. When a Java applet renders user interface screens on a client machine, it typically calls a class named LookAndFeel to make each user interface screen rendered by the Java applet consistent with other user interface screens generated by the same Java applet. Utilizing the LookAndFeel class, for example, a Java applet may readily set the foreground, background, and font properties for each screen the Java applet renders to the user.
Each LookAndFeel class has a list of User Interface Defaults (UI defaults) used to initialize Java components with defaults such as default fonts, colors, icons, and borders. For the UI defaults, a large hash table UIDefaults is provided which can be accessed using a getDefaults( ) method. When initialized, the LookAndFeel class gets its entire definition from a single XML file config.xml and initially populates the UIDefaults table based on the contents of the XML file.
A getDefaults( ) method can be called on a LookAndFeel object. Entries in the hash table use String keys and values of types such as type Boolean, Integer, String, Border, Color, Icon, and Font. A generic get( ) method on UIDefaults returns an Object value. If a new value is put into the table using a defaults.put method before components are constructed, the new value can affect how those components are initialized. Thus, changing a default value in the table only affects future component construction, and does not affect not components already built and initialized.